package view;

import java.util.List;


/**
 * 
 * Interface for the View Controller. Allows for
 * easily interchangeable "viewers" as long as 
 * the implementers fulfill the functions.
 * 
 * @author wesleybrown
 *
 */

public interface IViewController {


	/**
	 * 
	 * @param coordinates (x1, y1) and (x2, y2)
	 * @param trail whether trail is on
	 * @param ID ID of the turtle
	 */
	public void draw( int x1, int y1, int x2, int y2, int degrees, boolean trail, int ID, int tabID);
	
	/**
	 * initialize a new turtle
	 * @param turtleID
	 * @param canvasID
	 */
	public void addTurtle(int turtleID, int tabID);

	/**
	 * display text to the user
	 * @param s text to be displayed
	 */
	public void displayText(String s);
	
	/**
	 * configure the particular layer with the given display properties
	 * @param dp display properties
	 * @param ID layer ID
	 */
	public void setDisplayProperties(IDisplayProperties dp,int ID );
	
	/** 
	 * 
	 * Updates the window history. Shared among all tabs.
	 * 
	 * @param msg
	 */
	public void updateHistory(String msg);
	
	/**
	 * update the tab variable space given the tab ID
	 * @param variable
	 * @param ID
	 */
	public void updateVariable(String variable);
	
	
	public void clearTab(int tabId);
	
	public void cleanAndUpdate(List<String> list);
	
	public void setActiveTab(int ID);
	
}
